package com.mintrust.customer.service.sdk.base;

import com.mintrust.repository.model.User;
import com.github.pagehelper.PageInfo;

import java.io.Serializable;
import java.util.List;

/**
 * Created by pengpeng.zhang 2018/7/23
 */
public interface BaseService<T> {

    /**
     * 保存
     *
     * @param entity
     */
    public void save(T entity);

    /**
     * 批量保存
     *
     * @param list
     */
    public void saveList(List<T> list);

    /**
     * 根据主键更新
     *
     * @param entity
     */
    public void updateById(T entity);

    /**
     * 根据主键查找用户
     *
     * @param id
     * @return
     */
    public T selectById(Serializable id);

    /**
     * 根据实体查询唯一一条
     *
     * @param entity
     * @return
     */
    public T selectOne(T entity);

    /**
     * 根据实体查询
     *
     * @param entity
     * @return
     */
    public List<T> select(T entity);

    /**
     * 查看所有
     *
     * @return
     */
    public List<T> selectAll();

    /**
     * 根据id删除
     *
     * @param id
     */
    public void deleteById(Serializable id);

    /**
     * 根据实体删除
     *
     * @param entity
     */
    public void delete(T entity);

    /**
     * 条件及分页查询
     *
     * @param basePage
     * @return
     */
    public PageInfo<T> selectListByCondition(com.mintrust.repository.base.BasePage basePage, Class<T> clazz);

    User getOperator();


}
